package com.demo.daoImpl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.demo.Model.Users;
import com.demo.common.JDBCConnection;
import com.mysql.cj.jdbc.JdbcConnection;

public class DaoImpl {
	public List<Users> find(String sql) throws SQLException {
		//1.创建数据库创建出来的一次链接（每个链接都有一定的有效时常，不是创建了就能一直用）
		Connection connection=JDBCConnection.getConnection();
		//2.statement 针对数据库做增加、删除、修改、查询
		//statement是由connection创造的，没有connection就没有statement
		Statement stat=connection.createStatement();
		//3.结果集创建及接受查询出来的数据
		ResultSet rs=stat.executeQuery(sql);
		List<Users> list=new ArrayList<Users>();
		
		while (rs.next()) {
			list.add(new Users(rs.getString("id"),rs.getString("loginname"),rs.getString("password"),rs.getString("username")));
		}
		JDBCConnection.closeResultSet(rs);
		JDBCConnection.closeStatement(stat);
		JDBCConnection.closeConnection(connection);
	
		return list;
	}
	public Users findById(String sql) throws SQLException {
		//1.创建数据库创建出来的一次链接（每个链接都有一定的有效时常，不是创建了就能一直用）
		Connection connection=JDBCConnection.getConnection();
		//2.statement 针对数据库做增加、删除、修改、查询
		//statement是由connection创造的，没有connection就没有statement
		Statement stat=connection.createStatement();
		//3.结果集创建及接受查询出来的数据
		ResultSet rs=stat.executeQuery(sql);
		Users user=null;
		
		if (rs.next()) {//因为这里已知只有一条数据，所以可以用if判断是否有下一条数据
			user=new Users(rs.getString("id"),rs.getString("loginname"),rs.getString("password"),rs.getString("username"));
		}
		JDBCConnection.closeResultSet(rs);
		JDBCConnection.closeStatement(stat);
		JDBCConnection.closeConnection(connection);
		
		return user;
	}

	//增删改三个功能
	public int three(String sql) throws SQLException {
		Connection connection=null;
		Statement stat=null;
		int rs=0;
		
		connection=JDBCConnection.getConnection();
		stat=connection.createStatement();
		rs=stat.executeUpdate(sql);
		JDBCConnection.closeStatement(stat);
		JDBCConnection.closeConnection(connection);
		return rs;
	}

}
